/**
 * @author DongPing
 * 2022/2/21 10:55
 *
 *
 *
 * */
import _ from 'lodash';
export default class ClaimItemsDataUtil {

	//由于后端接口返回的认领明细项没有id，所以要给每一条数据加上id才能使用
	static tempIdAttributeName = '__id__';
	static setTempId<T>(data: T[]): T[] {
		if(!Array.isArray(data)) return data;
		for(const item of data) {
			item[ClaimItemsDataUtil.tempIdAttributeName] = _.uniqueId('temp-id-for-claim-item-')
		}
		return data;
	}
	static removeTempId<T>(data: T[]): T[] {
		if(!Array.isArray(data)) return data;
		for(const item of data) {
			delete item[ClaimItemsDataUtil.tempIdAttributeName];
		}
		return data;
	}

	/**
	 * 将一个对象的所有属性重置为空字符串
	 * @param target
	 * @param except 这个属性保留
	 * @return 返回原来的对象
	 * */
	static resetObjectAttributesToEmptyString<T extends {[name: string]: any}>(target: T, except?: string | string[]): T {
		let exceptArr: string[] = [];
		if(typeof except === 'string') {
			exceptArr.push(except)
		} else if(Array.isArray(except)) {
			exceptArr = except;
		}
		for(let key in target) {
			if(target.hasOwnProperty(key) && (!exceptArr.includes(key))) {
				target[key] = '' as any;
			}
		}
		return target;
	}
}
